package com.gxc.string;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 给定一个由多个命令字组成的命令字符串：
 *
 * 1、字符串长度小于等于127字节，只包含大小写字母，数字，下划线和偶数个双引号；
 * 2、命令字之间以一个或多个下划线_进行分割；
 * 3、可以通过两个双引号””来标识包含下划线_的命令字或空命令字（仅包含两个双引号的命令字），双引号不会在命令字内部出现；
 *
 * 请对指定索引的敏感字段进行加密，替换为******（6个*），并删除命令字前后多余的下划线_。
 *
 * 如果无法找到指定索引的命令字，输出字符串ERROR。
 *
 * 输入描述
 * 输入为两行，第一行为命令字索引K（从0开始），第二行为命令字符串S。
 *
 * 输出描述
 * 输出处理后的命令字符串，如果无法找到指定索引的命令字，输出字符串ERROR
 */
public class StringEncryption {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.nextLine();
        String str = scanner.nextLine();
        scanner.close();

        char[] charArray = str.toCharArray();
        String command = ""; // 当前正在解析的命令字
        List<String> commandList = new ArrayList<>(); // 存储解析后的命令字列表

        for (int i = 0; i < charArray.length; i++) {
            char ch = charArray[i];

            if (ch == '"' && command.contains("\"")) {
                command += '"';
                commandList.add(command);
                command = "";
            } else if (!command.contains("\"") && ch == '_') {
                if (!command.isEmpty()) {
                    commandList.add(command);
                    command = "";
                }
            } else if (i == charArray.length - 1) {
                command += ch;
                commandList.add(command);
                command = "";
            }  else {
                command += ch;
            }
        }

        if (k < 0 || k > commandList.size()) {
            System.out.println("ERROR");
        } else {
            commandList.set(k, "******");
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < commandList.size(); i++) {
                String s = commandList.get(i);
                builder.append("_").append(s);
            }
            builder.deleteCharAt(0);
            System.out.println(builder);
        }
    }
}
